<html>

<head>
	<title>Grid Bug</title>

	<script type="text/javascript" src="../../../dojo/dojo.js"
		djConfig="isDebug:false, parseOnLoad: true"></script>
		
		<!--<script type="text/javascript" src="dojo/dojo/grid.js"></script>--> 
		
	<style type="text/css">
		@import "../resources/Grid.css";
		@import "../resources/tundraGrid.css";
		@import "../../../dojo/resources/dojo.css";
		@import "../../../dijit/themes/tundra/tundra.css";
		@import "../../../dijit/tests/css/dijitTests.css";
	</style>
	


	<script type="text/javascript">
		dojo.require("dojox.grid.DataGrid");
		dojo.require("dojo.data.ItemFileReadStore");
		dojo.require("dijit.form.CheckBox");
		dojo.require("dojo.date.locale");

var drc={};
drc.gridData = {
	identifier: 'id',
	label: 'id',
	items: [
		{ id: 5301, created: 1204243230266, completed: 1204244264554, status: 'COMPLETED', completion_log: null, instructor_decision: 'YES', course: 'AGB 322', section: '02', exam_date: 1204920600000, end_time: 1204925100000 },
		{ id: 5401, created: 1204314408874, completed: 1204834363267, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205176200000, end_time: 1204314408000 },
		{ id: 5402, created: 1204314413361, completed: 1204834364132, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205176200000, end_time: 1204314413000 },
		{ id: 5403, created: 1204315176468, completed: 1205787777855, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1205960400000, end_time: 1204315176000 },
		{ id: 5404, created: 1204335924874, completed: 1205165567663, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1205338200000, end_time: 1204335924000 },
		{ id: 5405, created: 1204741820851, completed: 1204743423882, status: 'COMPLETED', completion_log: null, instructor_decision: 'somethinginvalid', course: 'FRSC 415', section: '02', exam_date: 1206731400000, end_time: 1206746700000 },
		{ id: 5406, created: 1204744307957, completed: 1205274662191, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1206731400000, end_time: 1204744307000 },
		{ id: 5407, created: 1204840355867, completed: 1205537683853, status: 'COMPLETED', completion_log: null, instructor_decision: 'YES', course: 'FRSC 415', section: '02', exam_date: 1206040200000, end_time: 1206055500000 },
		{ id: 5504, created: 1205274223961, completed: 1205274408372, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'AGB 322', section: '01', exam_date: 1207579200000, end_time: 1207586400000 },
		{ id: 5505, created: 1205274698075, completed: 1205274757197, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1206974400000, end_time: 1205274698000 },
		{ id: 5506, created: 1205274723562, completed: 1206628811409, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1206974400000, end_time: 1205274723000 },
		{ id: 4807, created: 1203037851016, completed: 1204045887212, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1204218600000, end_time: null },
		{ id: 4808, created: 1203037857289, completed: 1204045888187, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1204218600000, end_time: null },
		{ id: 4809, created: 1203039859756, completed: 1203970285117, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204143000000, end_time: null },
		{ id: 4810, created: 1203039862593, completed: 1203970285693, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204143000000, end_time: null },
		{ id: 4811, created: 1203039914652, completed: 1203970286217, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1204143000000, end_time: null },
		{ id: 4812, created: 1203039917115, completed: 1203970286693, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1204143000000, end_time: null },
		{ id: 4813, created: 1203718608148, completed: 1204226860378, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'WVIT 463', section: '01', exam_date: 1204330200000, end_time: null },
		{ id: 4816, created: 1203720084402, completed: 1207077016546, status: 'COMPLETED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1207249800000, end_time: null },
		{ id: 5201, created: 1203725528974, completed: 1204243139125, status: 'TERMINATED', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '02', exam_date: 1204747800000, end_time: null },
		{ id: 5702, created: 1206489796519, completed: null, status: 'RUNNING', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1206489796000 },
		{ id: 5701, created: 1206462566705, completed: 1207077017340, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1207249800000, end_time: 1206462566000 },
		{ id: 5703, created: 1206489800523, completed: null, status: 'RUNNING', completion_log: null, instructor_decision: null, course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1206489800000 },
		{ id: 5704, created: 1206555988187, completed: 1207072817249, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '02', exam_date: 1207245600000, end_time: 1206555988000 },
		{ id: 5705, created: 1206556755331, completed: 1206557243510, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'AGB 322', section: '01', exam_date: 1207320000000, end_time: 1207324020000 },
		{ id: 5706, created: 1206557320052, completed: 1206557366393, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'FRSC 415', section: '02', exam_date: 1207336200000, end_time: 1207340220000 },
		{ id: 5601, created: 1205522914023, completed: 1205522971080, status: 'COMPLETED', completion_log: 'REJECTED', instructor_decision: 'NO', course: 'FRSC 415', section: '02', exam_date: 1206645000000, end_time: 1205522914000 },
		{ id: 5602, created: 1205522920401, completed: 1205523821411, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'FRSC 415', section: '02', exam_date: 1206645000000, end_time: 1206660300000 },
		{ id: 5603, created: 1205530930988, completed: 1205537697586, status: 'COMPLETED', completion_log: 'REJECTED', instructor_decision: 'NO', course: 'AGB 322', section: '02', exam_date: 1206558600000, end_time: 1205530930000 },
		{ id: 5604, created: 1205539366682, completed: 1205881854926, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'WVIT 463', section: '01', exam_date: 1206745800000, end_time: 1206755700000 },
		{ id: 5605, created: 1205539369772, completed: 1205539670553, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'YES', course: 'WVIT 463', section: '01', exam_date: 1206745800000, end_time: 1206755700000 },
		{ id: 5606, created: 1205882032439, completed: 1205967437022, status: 'COMPLETED', completion_log: 'APPROVED', instructor_decision: 'WITH_MODS', course: 'FRSC 415', section: '03', exam_date: 1206720600000, end_time: 1206725100000 },
		{ id: 5607, created: 1206035981735, completed: 1206461410540, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1206634200000, end_time: 1206035981000 },
		{ id: 5608, created: 1206035986106, completed: 1206461411245, status: 'COMPLETED', completion_log: 'TIMEOUT', instructor_decision: null, course: 'FRSC 415', section: '03', exam_date: 1206634200000, end_time: 120603598600 }
	]
};

drc.filterPast = true;

drc.courseFormat = function(course, rowIndex){
	var item = this.grid.getItem(rowIndex);
	var sec = this.grid.store.getValue(item, "section");
	return course+"-"+sec;
}

drc.fullDateFormat = function(dateTime){
	if(dateTime == null){
		return null;
	}
	var d = new Date();
	d.setTime(dateTime);
	return dojo.date.locale.format(d, {datePattern:"MMM d y h:mm a",selector:'date'});
}

drc.timeFormat = function(dateTime){
	if(dateTime == null){
		return null;
	}
	var d = new Date();
	d.setTime(dateTime);
	return dojo.date.locale.format(d, {datePattern:"h:mm a",selector:'time'});
}

drc.filterPastChecked = function(value){
	drc.filterPast = this.checked;
	drc.grid.filter(null, true);
}

drc.statusFormat = function(value, rowIndex){
	var item = this.grid.getItem(rowIndex);
	var store = this.grid.store;
	var state = store.getValue(item, "status");
	var completion_log = store.getValue(item, "completion_log");
	var instructor_decision = store.getValue(item, "instructor_decision");
	var finishTime = store.getValue(item, "completed");
	
	if(state == 'RUNNING'){
		return 'Pending Instructor Approval';
	}
	
	var s = '';
	if(state == 'TERMINATED'){
		s += 'Canceled'
	}
	else if(state == 'COMPLETED'){
		if(completion_log == 'APPROVED'){
			s += 'Approved';
			if(instructor_decision == 'WITH_MODS'){
				s += ' with modifications';
			}
		}
		else if(completion_log == 'REJECTED'){
			s += 'Denied';
		}
		else if(completion_log == 'TIMEOUT'){
			s += 'Expired';
		}
		else{
			s += completion_log;
		}
	}
	return s;
}

drc.onBeforeRow = function(inDataIndex, inRow){
	if(inDataIndex < 0){
		inRow[0].hidden = false;
		return;
	}
	var item = this.grid.getItem(inDataIndex);
	if(!item){ return; }
	var store = this.grid.store;
	if(inDataIndex >= 0) {
		if (drc.filterPast) {
			//If exam date is past, don't show
			var exam_date = store.getValue(item, "exam_date");
			if (exam_date < 1207088855078) { //use static time value so filter will always have something to filter
				inRow[0].hidden = true;
				return;
			}
		}
	}
	inRow[0].hidden=false;
}

drc.viewButtonFormat = function(value, rowIndex){
	return '<a class="drc-view-button" href="'
	+ drc.baseActionURL + '?submittedform=view&processId='+value+'"/>';
}


dojo.addOnLoad(function() {	
	console.debug("initializing...");
	
	var check = new dijit.form.CheckBox({checked:true},"altTestingPastCheck");
	dojo.connect(check,"onClick", drc.filterPastChecked);

	var jsonStore = new dojo.data.ItemFileReadStore({ data: drc.gridData });
	
    var layout = [{
		onBeforeRow: drc.onBeforeRow,
		noscroll: true,
		cells: [	
			{name: 'Id',field:'id',width:3},
			{name: 'Created',field:'created',formatter:drc.fullDateFormat,width:11},
			{name: 'Status',field:'status',formatter:drc.statusFormat,width:13},
			{name: 'Completed',field:'completed',formatter:drc.fullDateFormat,width:11},
			{name: 'Course',field:'course',formatter:drc.courseFormat,width:7},
			{name: 'Exam Date', field:'exam_date',formatter:drc.fullDateFormat,width:11},
			{name: 'End Time', field:'end_time', formatter:drc.timeFormat,width:6},
			{name: 'View',field:'id',width:3,formatter:drc.viewButtonFormat}			
		]
	}];
	

	drc.grid = new dojox.grid.DataGrid({store:jsonStore,structure:layout,query: { id: '*' },rowsPerPage:20,
		autoHeight:true,autoWidth:true,style:"clear:both;"},"altTestingMainGrid");
	drc.grid.startup();

	console.debug("done.");
});

</script>
		
</head>

<body class="tundra">
		
	
	
	<div id="altTestingPastCheck"></div>
	<label for="altTestingPastCheck">Filter past exams (Exam Date before Apr 1, 2008)</label>
	
	<div style="background: red; padding: 10px 10px 10px 10px">
	<div id="altTestingMainGrid"></div>
	</div>
	
	
</body>
</html>
